import axios from 'axios'
import router from '../router'
import {
  getToken,
  removeToken,
  setToken
} from '@/utils/auth'
import {
  Toast
} from "vant"
axios.defaults.headers['Content-Type'] = 'application/json;charset=utf-8'
// 创建axios实例
const service = axios.create({
  // axios中请求配置有baseURL选项，表示请求URL公共部分
  baseURL: process.env.VUE_APP_BASE_API,
  // 超时
  timeout: 100000
})
// request拦截器
service.interceptors.request.use(config => {
  // 是否需要设置 token
  const isToken = (config.headers || {}).isToken === false
  if (getToken() && !isToken) {
    config.headers['Authorization'] = 'Bearer ' + getToken() // 让每个请求携带自定义token 请根据实际情况自行修改
  }
  return config
}, error => {
  Promise.reject(error)
})
/* 响应拦截器 */
service.interceptors.response.use(function (response) { // ①10010 token过期
  if (response.data.code === 10010) {
    Toast("登录时间过长，请重新登录")
    removeToken()
    router.replace({
      path: '/' // 到登录页重新获取token
    })
  } else if (response.data.token) { // 判断token是否存在，如果存在说明需要更新token
    setToken(response.data.token) // 覆盖原来的token(默认一天刷新一次)
  }
  return response
}, function (error) {
  return Promise.reject(error)
})
export default service